Server-client interoperation generally depends on suitable implementation of both. Evolving a server to change non-trivial aspects of its implementation without “breaking”—invalidating the assumptions of—pre-existing clients can be challenging. Some straightforward server-side updates are possible, especially when they are additive (e.g., add more data to pre-existing message transfers, add additional optional message transfer, etc.). In addition, certain specifications, such as application-level profile semantics (ALPS), have been put forward to address how to adequately specify a hypermedia application programming interface. While modern forms of application programming interfaces (APIs), such as hypermedia APIs and APIs based on the representational state transfer (REST) architectural style, can be utilized for inter-operability in client-server configurations, implementation in production deployments has been largely marginal.